var checkInterval;
var intervalCount;
function list() {
    $.blockUI({message: "Aguarde un momento por favor"});
    $.ajax({
        url: '/academico/maquinaalumno/myvms',
        type: 'post',
        dataType: 'json',
        success: function(response) {
            // se traen los datos al cargar la pagina
            areaTable = $('#myvms_table').dataTable({
                "sDom": "<'nuevo'> frtip",
                "sPaginationType": "bootstrap",
                "oLanguage": {
                    "sLengthMenu": "_MENU_ records per page"
                },
                "aaData": response,
                "aoColumns": [
                    {
                        "sTitle": ""
                    },
                    {
                        "sTitle": "Info"
                    }
//                    ,
//                    {
//                        "sTitle": "Descripcion"
//                    }
                ],
                "aoColumnDefs": [
                    {"sWidth": "20%", "aTargets": [0]},
                    {"asSorting": [], "aTargets": [0]},
                    {"asSorting": ["asc"], "aTargets": [1]}
                ]
            });
            $.unblockUI();
        },
        error: function(jqXHR, textStatus, errorThrown) {
            $.unblockUI();
            alert("Error");
            console.log(jqXHR);
            console.log(textStatus);
            console.log(errorThrown);
        }
    });
}

function checkVmStatus(jobid, accion) {
    if (intervalCount === 20) {
        intervalCount = 0;
        window.clearInterval(checkInterval);
        $.unblockUI();
        bootbox.alert("Ha llegado al tiempo l&iacute;mite sin respuesta. Favor contactar al administrador!", function() {
            window.location.href = '/academico/maquinaalumno';
        });
        return;
    }

    intervalCount++;

    $.ajax({
        url: '/academico/maquinaalumno/checkvmstatus/',
        dataType: 'json',
        type: 'post',
        async: false,
        data: 'jobid=' + jobid,
        success: function(data) {
            if (data.response === 'OK') {
                intervalCount = 0;
                window.clearInterval(checkInterval);
                if (accion === "encender") {
                    $("#btn-encender").attr('disabled', 'disabled');
                    $("#btn-encender").toggleClass("disabled");
                    $("#btn-apagar").removeAttr('disabled');
                    $("#btn-apagar").toggleClass("disabled");
                    $("#btn-conectar").removeAttr('disabled');
                    $("#btn-conectar").toggleClass("disabled");
                } else if (accion === "apagar") {
                    $("#btn-encender").removeAttr('disabled');
                    $("#btn-encender").toggleClass("disabled");
                    $("#btn-apagar").attr('disabled', 'disabled');
                    $("#btn-apagar").toggleClass("disabled");
                    $("#btn-conectar").attr('disabled', 'disabled');
                    $("#btn-conectar").toggleClass("disabled");
                }
                $.unblockUI();
            }

        },
        error: function(a, b, c) {
        }
    });
}

$(document).ready(function() {
    $.blockUI({message: "Aguarde un momento por favor"});
    intervalCount = 0;
    menuClass('maquinas-alumno');
    list();
    $('#btn-apagar').click(function(event) {
        event.preventDefault();
        $.ajax({
            url: '/academico/maquinaalumno/apagarvm/',
            dataType: 'json',
            type: 'post',
            data: 'codigo_vm=' + $('#codigo_vm').val(),
            success: function(data) {
                console.log(data);
                if (data.response === 'error') {
                    alert("CLANK");
                } else {
                    $.blockUI({message: "Aguarde un momento por favor"});
                    checkInterval = setInterval(function() {
                        checkVmStatus(data.response.jobid, "apagar");
                    }, 3000);
                }
            },
            error: function(a, b, c) {
            }
        });

    });

    $('#btn-encender').click(function(event) {
        event.preventDefault();
        $.ajax({
            url: '/academico/maquinaalumno/encendervm/',
            dataType: 'json',
            type: 'post',
            data: 'codigo_vm=' + $('#codigo_vm').val(),
            success: function(data) {
                if (data.response === 'error') {                    
                    var undefined;                    
                    if (data.message === undefined) {
                        alert("CLANK");
                    } else {
                        alert(data.message);
                    }                                          
                } else {
                    $.blockUI({message: "Aguarde un momento por favor"});
                    checkInterval = setInterval(function() {
                        checkVmStatus(data.response.jobid, "encender");
                    }, 3000);
                }
            },
            error: function(a, b, c) {
            }
        });
    });
    $.unblockUI();
});
